// app.js
App({
  onLaunch() {
    // 全局路由拦截
    wx.onAppRoute((res) => {
      // 获取当前页面栈
      const pages = getCurrentPages();
      // 最后一个页面即为当前跳转的目标页面
      const currentPage = pages[pages.length - 1];
      const currentPath = currentPage.route; // 目标页面路径（如 "pages/index/index"）

      // 获取本地存储的 token（根据你的实际存储方式调整）
      const token = wx.getStorageSync('token');

      // 未登录，且目标页面不是登录页，则强制跳回登录页
      if (!token && currentPath !== 'pages/login/login') {
        wx.reLaunch({
          url: '/pages/login/login'
        });
      }
    });

    // 全局登录态校验：无 token 时，直接跳转到登录页（备用方案）
    const token = wx.getStorageSync('token')
    if (!token) {
      wx.reLaunch({ url: '/pages/login/login' })
    }
  },

  onShow() {
    // 应用从后台进入前台时的登录态校验
    const token = wx.getStorageSync('token')
    const pages = getCurrentPages()
    const isLoginPage = pages && pages.length > 0 && pages[pages.length - 1].route === 'pages/login/login'
    if (!token && !isLoginPage) {
      wx.reLaunch({ url: '/pages/login/login' })
    }
  },

  request(options = {}) {
    const baseUrl = this.globalData.apiBase
    const token = wx.getStorageSync('token')
    const headers = Object.assign({}, options.header || {}, {
      'Content-Type': 'application/json'
    })
    if (token) {
      headers['Authorization'] = `Bearer ${token}`
    }
    return new Promise((resolve, reject) => {
      wx.request({
        url: options.url.startsWith('http') ? options.url : `${baseUrl}${options.url}`,
        method: options.method || 'GET',
        data: options.data || null,
        header: headers,
        success: (res) => {
          resolve(res)
        },
        fail: reject
      })
    })
  },

  globalData: {
    userInfo: null,
    apiBase: 'https://yangbaoyuan.cn'
  }
})
